﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
//using System.Web.UI.WebControls;
using Entities;
using System.Windows.Forms;
using DevExpress.Web.ASPxEditors;
using DevExpress.Web.ASPxClasses.Internal;
using DevExpress.Web.ASPxUploadControl;
using Helpers;
using System.Drawing;
using System.IO;

public partial class pSubCategoriaModificarDatos : System.Web.UI.Page
{


    protected void Page_Load(object sender, EventArgs e)
    {



        if (!Page.IsPostBack)
        {
            if (Session["Email"] != null)
                Master.UsuarioRegistrado(Session["Email"].ToString());
            lblError.Visible = false;
            lblActualizacionOK.Visible = false;
            CargarCombosPrimeraVez();
            lblIDCategoria.Text = Request["IDCategoria"];
            if (Request["IDSubCategoria"] != null)
            {
                lblIDCategoria.Text = Request["IDSubCategoria"];
                CargarDatos();
            }
            else
            {
                cmbCategoria.Text = Request["IDCategoria"];
            }
        }
    }



    private void CargarDatos()
    {
        try
        {
            var oSubCategoria = SubCategoria.ObtenerUno(long.Parse(lblIDCategoria.Text));
            txtIDCategoria.Text = oSubCategoria.IDSubCategoria.ToString();
            txtNombre.Text = oSubCategoria.Nombre;
            txtDescripcion.Text = oSubCategoria.Descripcion;
            cmbCategoria.Text = oSubCategoria.Categoria.Nombre;
        }
        catch (Exception ex)
        {
            lblError.Text = "Error en método cargar categoria, Descripción de error: " + ex.Message;
        }
    }

    private void CargarCombosPrimeraVez()
    {
        cmbCategoria.DataSource = Categoria.ObtenerTodos();
        cmbCategoria.DataBind();
        cmbCategoria.Items[0].Selected = true;
    }

    private long GuardarNuevo()
    {
        long longIDSubCAtegoria = 0;
        try
        {
            SubCategoria oSubCategoria = new SubCategoria();
            oSubCategoria.Nombre = txtNombre.Text;
            oSubCategoria.Descripcion = txtDescripcion.Text;
            oSubCategoria.Categoria = new Categoria();
            oSubCategoria.Categoria.IDCategoria = long.Parse(cmbCategoria.Value.ToString());
            longIDSubCAtegoria = SubCategoria.Nuevo(oSubCategoria);
            return longIDSubCAtegoria;
        }
        catch (Exception ex)
        {
            lblError.Text = "Error en método guardar categoria nueva, Descripción de error: " + ex.Message;
            return longIDSubCAtegoria;
        }
    }

    private void ModificarDatosUsuario()
    {
        try
        {
            var oSubCategoria = SubCategoria.ObtenerUno(long.Parse(lblIDCategoria.Text));
            oSubCategoria.Categoria.IDCategoria = long.Parse(cmbCategoria.Value.ToString());
            oSubCategoria.Nombre = txtNombre.Text;
            oSubCategoria.Descripcion = txtDescripcion.Text;
            SubCategoria.Modificar(oSubCategoria);

        }
        catch (Exception ex)
        {
            lblError.Text = "Error en método modificar datos categoria, Descripción de error: " + ex.Message;
        }
    }

    #region eventos

   

    protected void btnPopConfirmar_Click(object sender, EventArgs e)
    {


        if (Request["IDSubCategoria"] == null)
        {
            if (GuardarNuevo() > 0)
            {
                lblError.Visible = false;
                lblActualizacionOK.Visible = true;
            }
        }
        else
        {
            lblError.Visible = false;
            ModificarDatosUsuario();
            lblActualizacionOK.Visible = true;
        }
        Response.Redirect("pSubCategorias.aspx?IdCategoria=" + lblIDCategoria.Text);
    }


    protected void btnSiguiente_Click(object sender, EventArgs e)
    {
        Response.Redirect("pSubCategorias.aspx?IdCategoria=" + lblIDCategoria.Text);
    }
    #endregion



}